/*
 * Copyright info here...
 */

/**
 * @class cmx.data.DataService
 * @author Dave Kuhn
 * Abstract base class that provides a common interface for all DataServices. The purpose of this is to abstract implementing
 * components from the underlying backend implementation and provide flexibility in backend service design.
 */
cmx.data.DataService = function(config){
    Ext.apply(this, config);
};

cmx.data.DataService.prototype = {
	
	/**
     * @cfg {String} A valid local URL to make the AJAX requests to.
     */
	url : '',
	
	/**
	 * Get the logged in user's profile
	 * @param {Object} request
	 * @param {Function} callback
	 * @param {Object} scope
	 * @param {Mixed} args
	 */
	getProfile : function(request, callback, scope, args){},
	
	/**
	 * Get the website meta data
	 * @param {Object} request
	 * @param {Function} callback
	 * @param {Object} scope
	 * @param {Mixed} args
	 */
	getSite : function(request, callback, scope, args){},
	
	/**
	 * Get the child nodes for the current site tree node ID passed
	 * @param {Object} request
	 * @param {Function} callback
	 * @param {Object} scope
	 * @param {Mixed} args
	 */
	getSiteTreeChildNodes : function(request, callback, scope, args){},
	
	/**
	 * Get the page object associated with the page ID passed
	 * @param {Object} request
	 * @param {Function} callback
	 * @param {Object} scope
	 * @param {Mixed} args
	 */
	getPage : function(request, callback, scope, args){},
	
	/**
	 * Gets the requested page template object
	 * @param {Object} request
	 * @param {Function} callback
	 * @param {Object} scope
	 * @param {Mixed} args
	 */
	getTemplate : function(request, callback, scope, args){},
	
	/**
	 * 
	 * @param {Object} request
	 * @param {Function} callback
	 * @param {Object} scope
	 * @param {Mixed} args
	 */
	getFileTreeChildNodes : function(request, callback, scope, args){}
};
